f0287e40584b1487b2adcd44b81db4431a124469,sketches/src/main/java/com/yahoo/sketches/quantiles/DirectDoublesSketch.java,DirectDoublesSketch,wrapInstance,#Memory#,97

Before Change


    final long memAdd = srcMem.getCumulativeOffset(0L);

    //Extract the preamble, assumes at least 8 bytes
    final int preLongs = extractPreLongs(memObj, memAdd);
    final int serVer = extractSerVer(memObj, memAdd);
    final int familyID = extractFamilyID(memObj, memAdd);
    final int flags = extractFlags(memObj, memAdd);
    final int k = extractK(memObj, memAdd);
    final boolean empty = (flags & EMPTY_FLAG_MASK) > 0;

After Change


   * @return a sketch that wraps the given srcMem
   */
  static DirectDoublesSketch wrapInstance(final Memory srcMem) {
    final boolean readOnly = srcMem.isReadOnly();
    final boolean direct = srcMem.isDirect();
    final long memCap = srcMem.getCapacity();

    final int preLongs;
    final int serVer;
    final int familyID;
    final int flags;
    final int k;
    final long n;

    if (readOnly && !direct) {
      preLongs = srcMem.getByte(PREAMBLE_LONGS_BYTE) & 0XFF;
      serVer = srcMem.getByte(SER_VER_BYTE) & 0XFF;
      familyID = srcMem.getByte(FAMILY_BYTE) & 0XFF;
      flags = srcMem.getByte(FLAGS_BYTE) & 0XFF;
      k = srcMem.getShort(K_SHORT) & 0XFFFF;
      n = srcMem.getLong(N_LONG);
    } else {
      final Object memObj = srcMem.array(); //may be null
      final long memAdd = srcMem.getCumulativeOffset(0L);
  
      //Extract the preamble, assumes at least 8 bytes
      preLongs = extractPreLongs(memObj, memAdd);
      serVer = extractSerVer(memObj, memAdd);
      familyID = extractFamilyID(memObj, memAdd);
      flags = extractFlags(memObj, memAdd);
      k = extractK(memObj, memAdd);
      n = extractN(memObj, memAdd);